﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML><HEAD><TITLE>ControlGetText</TITLE>
<META http-equiv=Content-Type content="text/html; charset=UTF-8"><LINK 
href="../css/commands.css" type=text/css rel=stylesheet><LINK media=print 
href="../css/print.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.6000.16674" name=GENERATOR></HEAD>
<BODY>
<H1>ControlGetText</H1>


<P>从一个控件获取文本。 </P>
<P class=CommandSyntax>ControlGetText, OutputVar [, Control, WinTitle, WinText, 
ExcludeTitle, ExcludeText]</P>
<h3>参数 </h3>
<TABLE borderColor=#c0c0c0 cellSpacing=0 cellPadding=3 width="100%" border=1>
  <TBODY>
  <TR>
    <TD width="15%">OutputVar</TD>
    <TD width="85%">
      <P>储存获得的文本的变量名称</P></TD></TR>
  <TR>
    <TD>Control</TD>
    <TD>
      <P>可以是控件的名称/文本或 ClassNN (控件的 classname(类名)和序号)，它们都可以通过 Window Spy 
      来确定。当使用名称/文本时，matching behavior(匹配模式)通过&nbsp;<A 
      href="SetTitleMatchMode.htm">SetTitleMatchMode</A>&nbsp; 决定。如果此 
      parameter(参数)为空或省略，目标窗口的顶端控件将被使用。</P>
      <P>要对一个控件的 HWND (窗口 handle(句柄) )进行操作，将 Control 参数留空并为 WinTitle 参数指定 ahk_id 
      %ControlHwnd% (这样即使当 <A 
      href="DetectHiddenWindows.htm">DetectHiddenWindows</A> 是 Off 
      状态，它也能对隐藏的控件起作用)。一个控件的 HWND 往往由 <A href="ControlGet.htm#Hwnd">ControlGet 
      Hwnd</A> 、<A href="MouseGetPos.htm">MouseGetPos</A>&nbsp;或 <A 
      href="DllCall.htm">DllCall</A> 取得。</P></TD></TR>
  <TR>
    <TD>WinTitle</TD>
    <TD>
      <DIV>
      <DIV>
      <DIV>目标窗口的标题或副标题(匹配模式由&nbsp;<A 
      href="SetTitleMatchMode.htm">SetTitleMatchMode</A> 
      决定)。如果此参数和后面的3个参数被省略，</DIV>
      <DIV><A href="../LastFoundWindow.htm">Last Found 
      Window</A>(最近找到的窗口)将被使用。如果此参数是字母 A 
      并且后面的三个参数被省略，active(激活的)窗口将被使用。要使用一个窗口类，指定 ahk_class 确切的类名(通过 Window Spy 
      显示)。要使用一个</DIV>
      <DIV><A href="Process.htm">process identifier (PID)</A>(进程标识符)，指定 ahk_pid 
      %包含PID的变量% 。要使用一个</DIV>
      <DIV><A href="GroupAdd.htm">window group</A>(窗口组)，指定 ahk_group GroupName 
      。要使用一个窗口的</DIV>
      <DIV><A href="WinGet.htm">unique ID number</A>(唯一标识符编号)，指定 ahk_id 
      %包含ID的变量% 。通过指定</DIV>
      <DIV><A href="../LastFoundWindow.htm#multi">multiple criteria</A>(多个条件) 
      缩小搜索范围。 例如: <EM>My File.txt ahk_class Notepad</EM></DIV></DIV></DIV></TD></TR>
  <TR>
    <TD>WinText</TD>
    <TD>
      <DIV>如果用到，此参数必须是目标窗口的一个单独 text element(文本对象)的 substring(子字串) (像内置的 Window 
      Spy 工具显示的一样)。如果&nbsp;<A href="DetectHiddenText.htm">DetectHiddenText</A> 是 
      ON 的状态，隐藏的文本对象将被探测。</DIV></TD></TR>
  <TR>
    <TD>ExcludeTitle</TD>
    <TD>
      <DIV>标题含有此参数值的窗口将不被考虑。</DIV></TD></TR>
  <TR>
    <TD>ExcludeText</TD>
    <TD>
      <DIV>文本含有此参数值的窗口将不被考虑。</DIV></TD></TR></TBODY></TABLE>
<h3>ErrorLevel</h3>
<P>如果有问题，<A href="../misc/ErrorLevel.htm">ErrorLevel</A> 值将被设置为 1 ，否则为 0 。</P>
<h3>注意</h3>
<P>注意：要从一个 ListView(列表视图)、ListBox(列表框)或者 ComboBox(组合框)获取文本，使用 <A 
href="ControlGet.htm#List">ControlGet List</A> 来代替此命令。</P>
<P>如果获得的文本显得被缩短过(不完整)，试试在用 ControlGetText 命令之前先用 <A 
href="VarSetCapacity.htm">VarSetCapacity(OutputVar, 55)</A> 
[用一个与缩短的文本相比而显得非常地长的大小来替换 55&nbsp;]。这是很有必要的，因为有些应用程序对于 WM_GETTEXTLENGTH 
消息的反馈并不准确，这就导致了 AutoHotkey 的输出变量过小，以至于不能装下整个文本。</P>
<P>返回的文本数量受到一个变量的最大容量的限制(容量可以通过 <A href="_MaxMem.htm">#MaxMem</A> 
指令来改变)。因此，如果目标控件包含大量的文本(例如：用编辑器打开一个很大的文档)，这个命令可能会使用大量的 
RAM(随机存取存储器)。不过，一个变量的存储容量能在指定其为空后就可以被释放。例如 OutputVar =</P>
<P>从大部分控件类型取得的文本使用 carriage return(回车)和换行(`r`n)而不是一个单独的换行(`n)来表示每一行的结束。</P>
<P>没有必要执行<EM>SetTitleMatchMode Slow </EM>，因为 ControlGetText 
总是用缓慢方法来获得文本(由于它工作在一个更大范围的控件类型)。</P>
<P>要获得一个窗口内所有控件的列表，使用 <A href="WinGet.htm#ControlList">WinGet ControlList</A> 
。</P>
<P>窗口标题和文本是 case sensitive (区分大小写)的。隐藏的窗口将不被探测，除非&nbsp;<A 
href="DetectHiddenWindows.htm">DetectHiddenWindows</A> 已被打开。</P>
<h3>相关命令</h3>
<P><A href="ControlSetText.htm">ControlSetText</A>, <A 
href="WinGetText.htm">WinGetText</A>, <A href="Control.htm">Control</A>, <A 
href="ControlGet.htm">ControlGet</A>, <A href="ControlMove.htm">ControlMove</A>, 
<A href="ControlFocus.htm">ControlFocus</A>, <A 
href="ControlClick.htm">ControlClick</A>, <A 
href="ControlSend.htm">ControlSend</A>, <A href="_MaxMem.htm">#MaxMem</A></P>
<h3>示例</h3><PRE class=NoIndent>ControlGetText, OutputVar, Edit1, 无标题 -</PRE>
</BODY></HTML>
